/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dvd.modeles;

import java.io.Serializable;
import java.util.ArrayList;

public class Panier implements Serializable {

    private static final long serialVersionUID = 1L;
    private ArrayList<LignePanier> lignePanier = new ArrayList<LignePanier>();

    public Panier() {
    }

    public void ajouterProduit(Film film) {

        if (film.getStock() > 0) {

            if (lignePanier.isEmpty()) {
                lignePanier.add(new LignePanier(film, 1));
            } else {
                //ajouter un nouveau film dans le panier
                boolean ajout = true;
                for (int i = 0; i < lignePanier.size(); i++) {
                    if (film.getId() == lignePanier.get(i).getFilm().getId()) {
                        ajout = false;

                        if ((film.getStock() - lignePanier.get(i).getQuantite()) > 0) {
                            lignePanier.get(i).augmenterQuantite();
                        }
                    }
                }
                if (ajout == true) {
                    lignePanier.add(new LignePanier(film, 1));
                }

            }
        }
    }

    public void supprimerProduit(Film film) {
        if (!lignePanier.isEmpty()) {
            for (int i = 0; i < lignePanier.size(); i++) {
                if (film.getId() == lignePanier.get(i).getFilm().getId()) {
                    if (lignePanier.get(i).getQuantite() >= 2) {
                        lignePanier.get(i).diminuerQuantite();
                    } else {
                        lignePanier.remove(i);
                    }
                }
            }
        }
    }

    public int getQuantiteFilm(Film f){
        
        for (int i = 0; i < lignePanier.size(); i++) {
           if(lignePanier.get(i).getFilm().getId() == f.getId())
               return lignePanier.get(i).getQuantite();
        }
        return 0;
    }
    public double getTotalPanier() {
        double prix;
        int quant;
        double res = 0.00;

        for (int i = 0; i < lignePanier.size(); i++) {
            prix = lignePanier.get(i).getFilm().getPrix();
            quant = lignePanier.get(i).getQuantite();

            res += prix * quant;
            // permet d'arrondir à 2 chiffres après la virgule
            res *= 100;
            res = Math.ceil(res);
            res /= 100;
        }
        return res;
    }

    public double getTotalFraisDePort() {
        double res = 0.00;
        double fdp = 2.90;
        res = this.getTotalPanier() + fdp;
        // permet d'arrondir à 2 chiffres après la virgule
        res *= 100;
        res = Math.ceil(res);
        res /= 100;

        return res;
    }

    public boolean panierADesProduits() {
        if (lignePanier.isEmpty()) {
            return false;
        } else {
            return true;
        }
    }

    public ArrayList<LignePanier> getLignePanier() {
        return lignePanier;
    }

    public void setLignePanier(ArrayList<LignePanier> lignePanier) {
        this.lignePanier = lignePanier;
    }
}